package com.xb.loan.cashier.biz.dao;


import com.xb.loan.cashier.biz.dao.bean.CashierEncashBatch;
import com.xb.loan.util.mybatis.MyBatisRepository;

import java.util.List;
import java.util.Map;

@MyBatisRepository
public interface CashierEncashBatchDao {
    int deleteByPrimaryKey(String batchId);

    int insert(CashierEncashBatch record);

    int insertSelective(CashierEncashBatch record);

    CashierEncashBatch selectByPrimaryKey(String batchId);

    int updateByPrimaryKeySelective(CashierEncashBatch record);

    int updateByPrimaryKey(CashierEncashBatch record);
    
    /**
     * 查询未完成的历史批次
     */
    List<CashierEncashBatch> selectWaitBatchs();

    /**
     * 修改任务状态为处理中
     * @param batchId
     */
    void updateToWaiting(String batchId);
    /**
     * 修改任务状态为处理中   并更新批次数量
     * @param map
     * 2016年1月18日 by zhangyi
     */
    void updateToWaitingCount(Map map);

    /**
     * 修改任务状态为已发送
     * @param params
     * @return
     */
    int updateToSending(Map<String, Object> params);
    /**
     * 修改任务状态为完成
     * @param batchId
     * @return
     */
    int updateToFinish(String batchId);

    /**
     * 查询处理中的批次
     * @param params
     * @return
     */
    List<CashierEncashBatch> selectWaitingBatchs(Map<String, Object> params);

    /**
     * 查询已发送但固定时间未返回结果的批次
     * @param params
     * @return
     */
    List<CashierEncashBatch> selecSendingBatchsByUpdateTime(Map<String, Object> params);

}